Skip to content

GH-49369: [C++][R] Deal with validating libtool again#49370

Merged
jonkeane merged 6 commits intoapache:mainfrom
jonkeane:49369-libtool-again
Feb 24, 2026
Merged

GH-49369: [C++][R] Deal with validating libtool again#49370
jonkeane merged 6 commits intoapache:mainfrom
jonkeane:49369-libtool-again

Conversation

@jonkeane
Copy link
Member

@jonkeane jonkeane commented Feb 22, 2026

Rationale for this change

Deal with bespoke frameworks on CRAN machines, ensure we can detect Apple-provided libtool as opposed to GNU libtool. Modernize cmake.

What changes are included in this PR?

Use VALIDATOR to validate libtool, a slightly more flexible regex

Are these changes tested?

Yes

Are there any user-facing changes?

No, well just one.

@jonkeane
Copy link
Member Author

@github-actions crossbow submit test-r-install-local

@github-actions
Copy link

Revision: b6fa4e7

Submitted crossbow builds: ursacomputing/crossbow @ actions-dd37c5e22c

Task Status
test-r-install-local GitHub Actions

@jonkeane
Copy link
Member Author

@github-actions crossbow submit test-r-install-local

@github-actions
Copy link

Revision: dcc373d

Submitted crossbow builds: ursacomputing/crossbow @ actions-cb360883d6

Task Status
test-r-install-local GitHub Actions

@jonkeane jonkeane requested review from kou and thisisnic February 22, 2026 18:04
@jonkeane jonkeane force-pushed the 49369-libtool-again branch from bdafffa to fd2af48 Compare February 22, 2026 18:37
@jonkeane
Copy link
Member Author

The failures are either on main (macos 14) or transient (ubuntu gcc)

Copy link
Member

@raulcd raulcd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @jonkeane ! Just so I understand for the future if this or something similar happens again. Was the problem with GNU libtool found on CI? Where?

@github-actions github-actions bot added awaiting changes Awaiting changes and removed awaiting committer review Awaiting committer review labels Feb 23, 2026
@jonkeane
Copy link
Member Author

This is something that showed up on CRAN: the red M1Mac on https://cran.r-project.org/web/checks/check_results_arrow.html.

-- CMAKE_CXX_FLAGS_RELEASE: -O3 -DNDEBUG -O2 
CMake Error at cmake_modules/BuildUtils.cmake:114 (message):
  libtool found appears not to be Apple's libtool: /usr/bin/libtool

And then separately I also received this from one of the CRAN maintainers:

/usr/bin/libtool -V
Apple Inc. version cctools_ld-1266.5

The whole reason for this detection issue is because some CRAN machines had GNU libtool (an entirely different tool higher on their path than the apple-provided libtool that does the linking we want/need see #40259). So we sniffed for a string that could tell the difference. I'm not sure why on this machine (suddenly! nothing in our code here has changed since 2024...) the version string is slightly different, but this new regex is a bit more flexible.

We test this in crossbow jobs installing macos locally https://github.com/ursacomputing/crossbow/actions/runs/22282130627/job/64454329380#step:9:790 which we setup to use GNU libtool specially: https://github.com/ursacomputing/crossbow/actions/runs/22282130627/job/64454329380#step:6:2 though that runner has the standard (apple) libtool version string that we detect just fine with our stricter regex.

I am also going to add a print if I can to the cmake to also print out the version string we get when it errors so that we didn't need one of the CRAN maintainers to send us the string.

@github-actions github-actions bot added awaiting change review Awaiting change review and removed awaiting changes Awaiting changes labels Feb 23, 2026
Copy link
Member

@kou kou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

@github-actions github-actions bot added awaiting merge Awaiting merge and removed awaiting change review Awaiting change review labels Feb 24, 2026
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
@jonkeane
Copy link
Member Author

@github-actions crossbow submit test-r-install-local

@github-actions
Copy link

Revision: ad966fa

Submitted crossbow builds: ursacomputing/crossbow @ actions-69584c2a2e

Task Status
test-r-install-local GitHub Actions

@jonkeane jonkeane force-pushed the 49369-libtool-again branch from ad966fa to 7f0f2a6 Compare February 24, 2026 01:52
@jonkeane
Copy link
Member Author

@github-actions crossbow submit test-r-install-local

@github-actions
Copy link

Revision: 7f0f2a6

Submitted crossbow builds: ursacomputing/crossbow @ actions-2fb3dea162

Task Status
test-r-install-local GitHub Actions

@jonkeane jonkeane merged commit cbe2618 into apache:main Feb 24, 2026
69 of 99 checks passed
@jonkeane jonkeane removed the awaiting merge Awaiting merge label Feb 24, 2026
jonkeane added a commit that referenced this pull request Feb 24, 2026
### Rationale for this change

Deal with bespoke frameworks on CRAN machines, ensure we can detect Apple-provided `libtool` as opposed to GNU `libtool`. Modernize cmake.

### What changes are included in this PR?

Use `VALIDATOR` to validate `libtool`, a slightly more flexible regex

### Are these changes tested?

Yes

### Are there any user-facing changes?

No, well just one.
* GitHub Issue: #49369

Lead-authored-by: Jonathan Keane <jkeane@gmail.com>
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
Signed-off-by: Jonathan Keane <jkeane@gmail.com>
@conbench-apache-arrow
Copy link

After merging your PR, Conbench analyzed the 3 benchmarking runs that have been run so far on merge-commit cbe2618.

There were no benchmark performance regressions. 🎉

The full Conbench report has more details. It also includes information about 1 possible false positive for unstable benchmarks that are known to sometimes produce them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants